package category

import (
	"cgs-server/server/model"
	"go.mongodb.org/mongo-driver/bson/primitive"
)

// Category 分类
type Category struct {
	ID            primitive.ObjectID `json:"id" bson:"ID"`
	CategoryKey   string             `json:"categoryKey" bson:"CategoryKey" validate:"required"`     // 分类名称
	CategoryValue string             `json:"categoryValue" bson:"CategoryValue" validate:"required"` // 分类 值
	VisualType    string             `json:"visualType" bson:"VisualType" validate:"required"`       // 类型

	Children   []*Category   `json:"children,omitempty" bson:"-"`
	VisualList []interface{} `json:"visualList,omitempty" bson:"-"`

	model.TenantModel `json:",inline" bson:",inline"`
}

func (c *Category) SetId(id primitive.ObjectID) {
	c.ID = id
}

func (c *Category) GetId() string {
	return c.ID.Hex()
}

type Vo struct {
	ID            primitive.ObjectID `json:"id" bson:"ID"`
	CategoryKey   string             `json:"categoryKey" bson:"CategoryKey" validate:"required"`     // 分类名称
	CategoryValue string             `json:"categoryValue" bson:"CategoryValue" validate:"required"` // 分类 值
	VisualType    string             `json:"visualType" bson:"VisualType" validate:"required"`       // 类型

	Children   []*Vo         `json:"children,omitempty" bson:"-"`
	VisualList []interface{} `json:"visualList,omitempty" bson:"-"`
}
